package java学习.其他;

import java.io.PrintStream;

/**
 * ClassName: 方法的附加题
 * Package: java学习.第06章_面向对象编程_基础
 * Description:
 *
 * @Author 张蛟龙
 * @Create 2023/3/5 13:58
 * @Version 1.0
 */
public class 方法的附加题 {
    public static void main(String[] args) {
        int a = 10;
        int b = 10;
        //请让此程序输出 a=100   b=200
//        method(a,b);//方法一，直接输出完结束程序
        method1(a,b);//方法一，重写println方法

        System.out.println("a=" + a);
        System.out.println("b=" + b);

    }
    public static void method(int a,int b){//方法一
        System.out.println("a=" + a*10);
        System.out.println("b=" + b*20);
        //直接结束程序，相当于不执行main中的方法
        System.exit(0);
    }
    public static void method1(int a,int b){//方法二
        PrintStream p = new PrintStream(System.out){
            @Override
            public void println(String x) {
                if("a=10".equals(x)){
                    x="a=100";
                }else if("b=10".equals(x)){
                    x="b=200";
                }
                super.println(x);//调用父类
            }
        };
        //将所有 System.out 重新赋值成 我新new的
        System.setOut(p);
    }
}
